package main

import (
	"fmt"
	"reflect"
)

// SumParam 自定义泛型数据类型集合
type SumParam interface {
	float32 | float64 | int | int8 | int16 | int64 | string
}

// 在编写函数时候确认数据类型集合，只可使用以上数据理性
func sumParamData[T SumParam](a, b T) T {
	fmt.Println(reflect.TypeOf(a))
	return a + b
}

func main() {
	fmt.Println(sumParamData(1, 2))
	fmt.Println(sumParamData("a", "b"))
}
